The present invention is directed, in general, to video processing systems and, more specifically, to a decoder buffer for use in a streaming video receiver.
Real-time streaming of multimedia content over Internet protocol (IP), networks has become an increasingly common application in recent years. A wide range of interactive and non-interactive multimedia Internet applications, such as news con-demand, live TV viewing, video conferencing, and many others rely on end-to-end streaming solutions. Unlike a xe2x80x9cdownloadedxe2x80x9d video file, which may be retrieved first in xe2x80x9cnon-realxe2x80x9d time and viewed or played back later, streaming video applications require a video source to encode and to transmit a video signal over a network to a video receiver, which must decode and display the video signal in real time. The receiver relies on a decoder buffer to receive encoded video data packets from the network and to transfer the packets to a video decoder.
Two problems arise when a streaming video signal is transmitted across a non-guaranteed Quality-of-Service (QoS) network, such as the Internet. First, end-to-end variations in the network (e.g., delay jitter) between the streaming video transmitter and the streaming video receivers mean that the end-to-end delay is not constant. Second, there is usually a significant packet loss rate across non-QoS networks, often requiring re-transmission. The lost data packet must be recovered prior to the time the corresponding frame must be decoded. If not, an underflow event occurs. Furthermore, if prediction-based compression is used, an underflow due to lost data packets may not only impact the current frame being processed, but may affect many subsequent frames.
It is well-known that re-transmission of lost packets is a viable means of recovery for continuous media communication over packet networks. Many applications use a negative automatic repeat request (NACK) in conjunction with re-transmission of the lost packet. These approaches take into consideration both the round-trip delay and the delay jitter between the sender and the receiver(s).
For example, an end-to-end model with re-transmission for packet voice transmission has been developed. This model takes advantage of the fact that voice data consists of periods of silence separated by brief talk-spurt segments. The model also assumes that each talk-spurt consists of a fixed number of fixed-size packets. However, this model is not general enough to capture the characteristics of compressed video (which can have variable number of bytes or packets per video frame).
There is therefore a need in the art for improved streaming video receivers that compensate for variations inherent in a non-QoS network. In particular, there is a need for an improved receiver decoder buffer that takes into consideration both transport delay parameters (e.g., end-to-end delay and delay jitter) and video encoder buffer constraints. More particularly, there is a need for an improved decoder buffer that eliminates the separation between the network transport buffer, which is typically used to remove delay jitter and to recover lost data, and the video decoder buffer.
The present invention is embodied in an Integrated Transport Decoder (ITD) buffer model. One key advantage of the ITD model is that it eliminates the separation of a network-transport buffer, which is typically used for removing delay jitter and recovering lost data, from the video decoder buffer. This can significantly reduce the end-to-end delay, and optimize the usage of receiver resources (such as memory).
It is a primary object of the present invention to provide, for use with a video decoder capable of decoding streaming video, a decoder buffer capable of receiving from a streaming video transmitter data packets comprising the streaming video and storing the data packets in a plurality of access units. Each of the, access units is capable of holding at least one data packet associated with a selected frame in the streaming video. The decoder buffer comprises: 1) a first buffer region comprising at least one access unit capable of storing data packets that are less immediately needed by the video decoder; and 2) a re-transmission region comprising at least one access unit capable of storing data packets that are most immediately. needed by the video decoder, wherein the decoder buffer, in response to a detection of a missing, data packet in the re-transmission region requests that the streaming video transmitter retransmit the missing packet.
In one embodiment of the present invention, at least one of the data packets are stored in the first buffer region for a period of time equal to a start-up delay time of the decoder buffer.
In another embodiment of the present invention, the data packets are first stored in the first buffer region and are shifted into the re-transmission region.
In still another embodiment of the present invention, the first buffer region is separate from the re-transmission region.
In yet another embodiment of the present invention, the first buffer region overlaps at least a portion of the re-transmission region.
In a further embodiment of the present invention, the first buffer region overlaps all of the re-transmission region.
In a further embodiment of the present invention, the first buffer region is separated from the re-transmission region by a second buffer region in which a late data packet is late with respect to an expected time of arrival of the late data packet, but is not sufficiently late to require a re-transmission of the late data packet.
The foregoing has outlined rather broadly the features and technical advantages of the present invention so that those skilled in the art, may better understand the detailed description of the invention that follows. Additional features and advantages of the invention will be described hereinafter that form the subject of the claims of the invention. Those skilled in the art should appreciate that they may readily use the conception and the specific embodiment disclosed as a basis for modifying or designing other structures for carrying out the same purposes of the present invention. Those skilled in the art should also realize that such equivalent constructions do not depart from the spirit, and scope of the invention in its broadest form.
Before undertaking the DETAILED DESCRIPTION, it may be advantageous to set forth definitions of certain words and phrases used throughout this patent document: the terms xe2x80x9cincludexe2x80x9d and xe2x80x9ccomprise,xe2x80x9d as well as derivatives thereof, mean inclusion without limitation; the term xe2x80x9cor,xe2x80x9d is inclusive, meaning and/or; the phrases xe2x80x9cassociated withxe2x80x9d and xe2x80x9cassociated therewith,xe2x80x9d as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, or the like; and the term xe2x80x9ccontrollerxe2x80x9d means any device, system or part thereof that controls at least one operation, such a device may be implemented in hardware, firmware or software, or some combination of at least two of the same. It should be noted that the functionality associated with any particular controller may be centralized or distributed, whether locally or remotely. Definitions for certain words and phrases are provided throughout this patent document, those of ordinary skill in the art should understand that in many, if not most instances, such definitions apply to prior, as well as future uses of such defined words and phrases.